Go method receiver
Pointer か value か
A Tour of Go(Choosing a value or pointer receiver)
Interface を実装しているかどうかは、pointer と value それぞれで判断される
pointer はしているけど、value はしていない、ということがあり得る
function - Value receiver vs. pointer receiver - Stack Overflow
Frequently Asked Questions (FAQ) - The Go Programming Language
T に呼び出せるのは (t T) func () だけ
*T に呼び出せるのは (t *T) func () と (t T) func () の両方
つまり (t *T) は *T にしか呼び出せない
なので interface 実装でこのようなことがおきる
https://stackoverflow.com/questions/27775376/value-receiver-vs-pointer-receiver/27775558#comment121472387_27775558
Stringer を実装するときに (t *T) にしてしまうと、value にたいして呼び出したら、(t *T) がは呼び出されない
method receiver の一貫性について
go - In golang, is it necessary change all method of a type to have pointer receivers if one of the method must have pointer receiver? - Stack Overflow